<?php
/**
 * 百度鹰眼 track 接口类
 */
class LbsTrack extends LbsApiBasic 
{
	public function __construct($service_id=0){
		parent::__construct('track');
		if($service_id>0){
			$this->setServiceId($service_id);
		}
	}
	
	/**
	 * 创建一个新track或者给track添加最新点都可使用本接口，返回的是本track实时点的track_id，实时点的track_id或者track_name加上其所属服务的service _id可以做track的实时点查找使用。
	 *
	 * @param Array $track
	 * @return Int / false
	 */
	public function create($track)
	{
		if($res = $this->post('create',$track)){
			return $res['track_id'];
		}else{
			return false;
		}
	}
	
	/**
	 * 通过service_id和track实时点的track_id（或者track_name）查找本track最新实时点的具体信息（包括经纬度，时间，其他用户自定义信息，等）。
	 *
	 * @param array track_id 或者 track_name 二选一
	 * @return Array
	 */
	public function detail($data)
	{
		if($res = $this->get('detail',$data)){
			return $res['poi'];
		}else{
			return false;
		}
	}
	
	/**
	 * 根据service_id和track_name (用户自定义track标识) 中关键字或其他用户自定义可检索字段，检索本service服务中tracks的实时点集合。
	 *
	 * @param Array track_ids,track_name(track_ids 与 track_name 二选一)，attribute-key，return_type，active_time，page_index，page_size
	 * @return Array
	 */
	public function trackList($data,$page=1,$pagesize=100)
	{
		$data['page_index'] = $page;
		$data['page_size'] = $pagesize;
		return $this->post('list',$data);
	}
	
	/**
	 * 对于一个track批量上传轨迹点。按照时间顺序保留最后一个点作为实时点，返回实时点id，过程耗时等信息。
	 *
	 * @param String $track_name 
	 * @param String $poifile 文件路径
	 * @return Boolean
	 */
	public function upload($track_name,$poifile)
	{
		$pathinfo = pathinfo($poifile);
        $data = array('track_name'=>$track_name);
        $data['poi_list'] = '@'.realpath($poifile).";type=text/csv;filename=".$pathinfo['basename'];
		$res = $this->post('upload',$data);
		return $res;
	}
	
	/**
	 * 通过service _id和track_id（或者track_name）查找本track历史轨迹点的具体信息（包括经纬度，时间，其他用户自定义信息，等）
	 *
	 * @param Array 参数集合 track_id，track_name二选一，start_time可选，end_time可选,simple_return只返回坐标信息
	 * @param Array $column
	 */
	public function history($data,$page=1,$pagesize=100,$simple_return=0)
	{
		$data['page_size'] = $pagesize;
		$data['page_index'] = $page;
		if($simple_return > 0){
			$data['simple_return'] = 1;
		}
		if($res = $this->post('history',$data)){
			return $res;
		}else{
			return false;
		}
	}
	
	/**
	 * 根据track_id或者track_name删除track。
	 *
	 * @param Array $data ,track_id,track_name二选一
	 * @return Boolean
	 */
	public function delete($data)
	{
		if($res = $this->post('delete',$data)){
			if($res['status'] == 21){
				return true;
			}
		}
		return false;
	}
}
?>